pcworld online logo

Dosyalar Geri D÷nⁿ■ⁿm Kutusu'na

VB4'ⁿn 32-bit'lik sⁿrⁿmⁿnⁿ kullan²yorsan²z, dosyalar² program²n²z iτinden Windows'un τ÷p kutusuna g÷nderebilirsiniz. VB'de KILL komutuyla sildi≡iniz hiτ bir dosya normal olarak τ÷p kutusuna gitmeyecek ve kullan²c² dosyas²n² geri getirmek istedi≡inde τ÷p kutusunda bulamayacakt²r. E≡er becerikli bir kullan²c² arabirimi istiyorsan²z bu ÷zelli≡i g÷z ard² etmemelisiniz. A■a≡²daki ÷rnek sadece dosyay² τ÷p kutusuna g÷ndermeyi de≡il, VB 4.0 ile gelen ParamArray ifadesinin kullan²m²n² da g÷steren gⁿzel kodlardan olu■maktad²r.

Option Explicit
Private Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAborted As Boolean
hNameMaps As Long
sProgress As String
End Type

Private Const FO_DELETE = &H3
Private Const FOF_ALLOWUNDO = &H40
Private Declare Function SHFileOperation Lib "shell32.dll" Alias _
"SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

Public Function ShellDelete(ParamArray vntFileName() _
As Variant) As Long

Dim I As Integer
Dim sFileNames As String
Dim SHFileOp As SHFILEOPSTRUCT

For I = LBound(vntFileName) To UBound(vntFileName)
sFileNames = sFileNames & vntFileName(I) & vbNullChar
Next
sFileNames = sFileNames & vbNullChar

With SHFileOp
.wFunc = FO_DELETE
.pFrom = sFileNames
.fFlags = FOF_ALLOWUNDO
End With

ShellDelete = SHFileOperation(SHFileOp)

End Function

╓rnekte ParamArray ifadesi kullan²larak fonksiyona birden fazla parametre tan²ma ÷zelli≡i kazand²r²lm²■t²r
Tek bir dosya silmek iτin
X = ShellDelete("DELETE.ME")
komutunu kullanabilece≡iniz gibi,
X = ShellDelete("DELETE.ME", "LOVE_LTR.DOC", "COVERUP.TXT")
komutunu kullanarak ad² geτen ⁿτ dosyay² da silebilirsiniz.